package br.senai.sc.util;

import org.jboss.seam.faces.rewrite.FacesRedirect;
import org.jboss.seam.faces.rewrite.UrlMapping;
import org.jboss.seam.faces.security.LoginView;
import org.jboss.seam.faces.view.config.ViewConfig;
import org.jboss.seam.faces.view.config.ViewPattern;
import org.jboss.seam.security.annotations.LoggedIn;

/**
 * Essa interface é utilizada para configurar o URL rewritting usando Seam e Prettyfaces. É possível também controlar a segurança
 * das páginas através dessas configurações. <br />
 * Informações: {@link http://docs.jboss.org/seam/3/faces/latest/reference/en-US/html/viewconfig.html}
 * 
 * @author Fernando Marquardt &lt;fernando.marquardt@sc.senai.br&gt;
 * @version $Id: PagesConfig.java 49 2012-03-27 12:19:29Z tiago.wanke $
 */
@ViewConfig
public interface PagesConfig {

    enum Restricted {

        @UrlMapping(pattern = "/")
        @ViewPattern("/pages/principal.xhtml")
        PRINCIPAL,

        @UrlMapping(pattern = "/amostras")
        @ViewPattern("/pages/amostras/lista.xhtml")
        AMOSTRAS,

        @UrlMapping(pattern = "/amostras/relatorio/#{id:amostrasRelatorioBean.idAmostra}")
        @ViewPattern("/pages/amostras/relatorio.xhtml")
        AMOSTRAS_RELATORIO,

        @UrlMapping(pattern = "/pontosColeta/relatorio/#{id:pontoColetaRelatorioBean.idPontoColeta}")
        @ViewPattern("/pages/pontosColeta/relatorio.xhtml")
        PONTO_COLETA_RELATORIO,

        @UrlMapping(pattern = "/pontosColeta")
        @ViewPattern("/pages/pontosColeta/lista.xhtml")
        PONTOS_COLETA,

        @UrlMapping(pattern = "/cidades")
        @ViewPattern("/pages/cidades/lista.xhtml")
        CIDADES,

        @UrlMapping(pattern = "/usuarios")
        @ViewPattern("/pages/usuarios/lista.xhtml")
        USUARIOS,

        @UrlMapping(pattern = "/bacias")
        @ViewPattern("/pages/baciasHidrograficas/lista.xhtml")
        BACIAS,

        @UrlMapping(pattern = "/corpos-hidricos")
        @ViewPattern("/pages/corposHidricos/lista.xhtml")
        CORPOS_HIDRICOS,

        @UrlMapping(pattern = "/condicoes-climaticas")
        @ViewPattern("/pages/condicoesClimaticas/lista.xhtml")
        CONDICOES_CLIMATICAS,

        @UrlMapping(pattern = "/indice-qualidade-agua")
        @ViewPattern("/pages/textos/indiceQualidadeAgua.xhtml")
        TEXTO_INDICE_QUALIDADE_AGUA,

        @UrlMapping(pattern = "/rios-blumenau")
        @ViewPattern("/pages/textos/rios.xhtml")
        TEXTO_RIOS_BLUMENA,

        @UrlMapping(pattern = "/parametros")
        @ViewPattern("/pages/textos/parametros.xhtml")
        TEXTO_PARAMETROS,

        @FacesRedirect
        @LoggedIn
        @ViewPattern("/pages/*")
        @LoginView("/login.xhtml")
        TODAS;
    }

    enum Publicas {

        @UrlMapping(pattern = "/login")
        @ViewPattern("/login.xhtml")
        LOGIN;
    }
}